package br.com.sistema.smallAgro.service;

import java.io.Serializable;
import java.util.Iterator;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import br.com.sistema.smallAgro.dao.ClienteDao;
import br.com.sistema.smallAgro.modelo.Cliente;
import br.com.sistema.smallAgro.util.AbstractPaginacaoService;

@Component("clienteService")
public class ClienteService extends AbstractPaginacaoService<Cliente> {

	@Autowired
	@Qualifier("clienteDao")
	private ClienteDao clienteDao;

	public boolean buscaCliente(Cliente cliente) {
		return clienteDao.buscaCliente(cliente);
	}

	public void salvar(Cliente cliente) {
		clienteDao.salvar(cliente);
	}

	@Transactional
	public void excluir(Cliente cliente) {
		excluir(cliente);
	}

	public boolean buscaClienteValidacao(Cliente cliente) {
		return clienteDao.buscaClienteValidacao(cliente);
	}

	@Override
	public Iterator<? extends Cliente> consultaPaginada(Serializable filtro,
			long inicio, long fim) {
		return (clienteDao.consultaPaginada(filtro, inicio, fim).iterator());
	}

	@Override
	public int contadorPaginado(Serializable filtro) {
		return (int) clienteDao.total(filtro);
	}

	public boolean buscaUsuarioValidacao(Cliente cliente) {
		return clienteDao.buscaClienteValidacao(cliente);
	}
}
